package com.fml.dataStructure.sort;

import com.fml.dataStructure.sort.util.SortUtils;

/**
 * 选择排序
 */
public class SelectionSort {
    public static void selectionSort(int[] arr) {

        //循环，每次挑选一个最小的数放到前面
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;//最小数索引
            for (int j = i+1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;//获取当前筛选部分的最小值的索引
                }
            }
            if (minIndex != i) {
                SortUtils.swap(arr, minIndex, i);//交换位置
            }
        }
    }



    public static void main(String[] args) {
        int[] arr = new int[]{9, 1, 3, 2, 5, 6, 8, 10, 12, 4, 0, 7};

        selectionSort(arr);
        SortUtils.printArray(arr);
    }

}
